package com.yssoft.controller.app.production;

import com.yssoft.service.production.IntoProductionService;
import com.yssoft.utils.AppUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import java.util.List;
import java.util.Map;

/**
 * @类名称: IntoProductionController
 * @类描述: 生产投产管理控制器
 * @作者: 洪丰
 * @创建时间:2018年5月9日 上午10:13:50
 */
@CrossOrigin//解决跨域session问题
@Controller
@RequestMapping("/app/intoProduction")
public class IntoProductionController {
    
    @Resource
    private IntoProductionService intoProductionService;
    
    /**
     * @方法名称: getWorksheetList
     * @功能描述: 获取生产投产管理列表数据
     * @作者: 洪丰
     * @创建时间:2018年5月9日 上午11:41:03
     * @param page
     * @param limit
     * @param companyId
     * @param productName
     * @param processStat
     * @return Object
     */
    @RequestMapping(value = "getWorksheetList",method = RequestMethod.GET)
    @ResponseBody
    public Object getWorksheetList(int page, int limit, Integer companyId, String productName, String processStat, Integer batchId,String createTime) {
    	if (null == companyId) {
            return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
        } 
        try {
            List<Map<String, Object>> worksheetList = intoProductionService.findPage(page, limit, companyId, productName, processStat, batchId,createTime);
            return AppUtil.returnListJson("1", "查询成功!", worksheetList);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
        }
    }
    /**
     * @方法名称: getWorksheetList1
     * @功能描述: 入库申请获取加工单
     * @作者: 王永宁
     * @创建时间:2018年6月6日 下午9:41:03
     * @param page
     * @param limit
     * @param companyId
     * @param productName
     * @param processStat
     * @return Object
     */
    @RequestMapping(value = "getWorksheetList1",method = RequestMethod.GET)
    @ResponseBody
    public Object getWorksheetList1(int page, int limit, Integer companyId, String productName, String processStat, Integer batchId,String createTime) {
    	if (null == companyId) {
    		return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
    	} 
    	try {
    		List<Map<String, Object>> worksheetList = intoProductionService.findPage1(page, limit, companyId, productName, processStat, batchId,createTime);
    		return AppUtil.returnListJson("1", "查询成功!", worksheetList);
    	} catch (NumberFormatException e) {
    		e.printStackTrace();
    		return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
    	}
    }
    
    /**
     * @方法名称: getWorksheetDetail
     * @功能描述: 获取加工单详情
     * @作者: 洪丰
     * @创建时间:2018年5月9日 下午1:46:30
     * @param id
     * @return Object
     */
    @RequestMapping(value = "getWorksheetDetail",method = RequestMethod.GET)
    @ResponseBody
    public Object getWorksheetDetail(Integer id) {
        if (null == id) {
            return AppUtil.returnMapJson("0", "查询失败，请传递加工单id", null);
        } 
        try {
            Map<String, Object> workSheetDetail = intoProductionService.findWorksheetDetail(id);
            return AppUtil.returnMapJson("1", "查询成功!", workSheetDetail);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
        }
    }
    
    /**
     * @方法名称: saveCollarMaterial
     * @功能描述: 保存领料
     * @作者: 洪丰
     * @创建时间:2018年5月9日 下午2:35:22
     * @param request
     * @param entity
     * @return Object
     */
    @RequestMapping(value = "saveCollarMaterial",method = RequestMethod.POST)
    @ResponseBody
    public Object saveCollarMaterial(HttpServletRequest request,String tWorksheeId, String[] tMaterialId, String[] createCode, String[] quantity, String[] tWarehouseId, String[] mType) {
        try {
        	intoProductionService.save(request, tWorksheeId, tMaterialId, createCode, quantity, tWarehouseId, mType);
        	return AppUtil.returnMapJson("1", "保存成功!", null);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "保存失败!"+e.getMessage(), null);
        }
    }
    
    /**
     * @方法名称: getCollarMaterialFrom
     * @功能描述: 获取领料列表
     * @作者: 洪丰
     * @创建时间:2018年5月9日 下午5:08:16
     * @param companyId
     * @param worksheetId
     * @return Object
     */
    @RequestMapping(value = "getCollarMaterialFrom",method = RequestMethod.GET)
    @ResponseBody
    public Object getCollarMaterialFrom(Integer companyId, Integer worksheetId) {
        if (null == companyId) {
            return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
        } 
        if (null == worksheetId) {
            return AppUtil.returnMapJson("0", "查询失败，请传递加工单id", null);
        } 
        try {
            List<Map<String, Object>> collarMaterialList = intoProductionService.toCollarMaterial(worksheetId, companyId);
            return AppUtil.returnListJson("1", "查询成功!", collarMaterialList);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
        }
    }
    
    /**
     * @方法名称: getCollarMaterialDetailList
     * @功能描述: 查看领料单
     * @作者: 洪丰
     * @创建时间:2018年5月9日 下午7:07:07
     * @param page
     * @param limit
     * @param worksheetId
     * @param cmDate
     * @return Object
     */
    @RequestMapping(value = "getCollarMaterialDetailList",method = RequestMethod.GET)
    @ResponseBody
    public Object getCollarMaterialDetailList(int page, int limit, Integer worksheetId, String cmDate) {
        if (null == worksheetId) {
            return AppUtil.returnMapJson("0", "查询失败，请传递加工单id", null);
        } 
        try {
            List<Map<String, Object>> collarMaterialList = intoProductionService.findCollarMaterialPage(page, limit, worksheetId, cmDate);
            return AppUtil.returnListJson("1", "查询成功!", collarMaterialList);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
        }
    }
    
    /**
     * @方法名称: getPackageCodeList
     * @功能描述: 查看包装码
     * @作者: 洪丰
     * @创建时间:2018年5月9日 下午7:10:14
     * @param page
     * @param limit
     * @param cmdId
     * @return Object
     */
    @RequestMapping(value = "getPackageCodeList",method = RequestMethod.GET)
    @ResponseBody
    public Object getPackageCodeList(int page, int limit, Integer cmdId) {
        if (null == cmdId) {
            return AppUtil.returnMapJson("0", "查询失败，请传递领料明细id", null);
        } 
        try {
            List<Map<String, Object>> packageCodeList = intoProductionService.findPackageCode(page, limit, cmdId);
            return AppUtil.returnListJson("1", "查询成功!", packageCodeList);
        } catch (NumberFormatException e) {
        	e.printStackTrace();
            return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
        }
    }
    
}
